學習Java語言時,相信大家都用過system.out.println等等的方式將資料給顯示出來,這是檢查程式邏輯的方式之一,可以透過一一排查的方式找到錯誤的地方。而Android studiou也有Log與上述的system.out.println可以達到一樣的作用,Log可以放在任何地方,方便我們用其了解目前程式的運行狀況。
Android Studio 提供 Logcat視窗,可以與Log搭配實現除錯的功能。以下介紹幾種代表不同狀況的Log及Log的簡易使用方法。
對我來說,我覺得Log就像一個公文夾,透過不同的頁標籤,你可以非常直覺的找出相對應的訊息,方便進行後續動作。
常見的Log分為五種類型:
Log有兩個欄位輸入,第一欄位為Tag,第二欄位為Message。搭配上邏輯判斷的效果如下:(說明:如果EditText輸入1時,Log則輸出"Enter 1")
Log.v("TAG","Message");
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/editTextNumberPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberPassword"
app:layout_constraintBottom_toTopOf="@+id/button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
public class MainActivity extends AppCompatActivity {
private Button button;
private EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
editText = findViewById(R.id.editTextNumberPassword);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (editText.getText().toString().equals("0")) {
Log.v("Enter 0",editText.getText().toString());
}
else if(editText.getText().toString().equals("1")){
Log.v("Enter 1",editText.getText().toString());
}
}
});
}
}